package com.lx.hashcode;

import java.util.HashSet;

public class test {
    public static void main(String[] args) {
//        不重写hashcode方法则相同属性的hash值不同
//        重写hashcode方法则相同属性的hash值相同
        student s1 = new student("zhangsan",23);
        student s2 = new student("zhangsan",23);
        System.out.println(s1.hashCode());
        System.out.println(s2.hashCode());
//        不同属性的hash值可能相同

        HashSet<student> hs = new HashSet<>();
//        hashset底层依靠数组+链表+红黑树存储，重写equals和hashcode方法导致添加相同属性值的时候添加不成功，保证不重复添加
        System.out.println(hs.add(s1));
        System.out.println(hs.add(s2));
        System.out.println(hs);
    }
}
